/*=========================================================================================
  This file is a part of BioDao.
  Copyright (C) 2011, Fu Limin. Email: fu@daovm.net, limin.fu@yahoo.com

  This software is free software; you can redistribute it and/or modify it under the terms
  of the GNU Lesser General Public License as published by the Free Software Foundation;
  either version 2.1 of the License, or (at your option) any later version.

  This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the GNU Lesser General Public License for more details.
  =========================================================================================*/

#ifndef __DAOX_SEQUENCE_H__
#define __DAOX_SEQUENCE_H__

#include<stdint.h>
#include<assert.h>
#include<math.h>
#include<string.h>
#include<daoStdtype.h>
#include<daoValue.h>

typedef struct DaoxSequence    DaoxSequence;
typedef struct DaoxSequenceQS  DaoxSequenceQS;

struct DaoxSequence
{
	DAO_CDATA_COMMON;

	DString  *des; /* description; */
	DString  *seq; /* sequence; */
};
DAO_DLL extern DaoTypeBase DaoxSequence_Typer;

DAO_DLL DaoxSequence* DaoxSequence_New( DString *des, DString *seq );
DAO_DLL void DaoxSequence_Delete( DaoxSequence *self );
DAO_DLL void DaoxSequence_Copy( DaoxSequence *self, DaoxSequence *other );

struct DaoxSequenceQS
{
	DAO_CDATA_COMMON;

	DString  *des; /* description; */
	DString  *seq; /* sequence; */
	DString  *qs;  /* quality score; */
};
DAO_DLL extern DaoTypeBase DaoxSequenceQS_Typer;

DAO_DLL DaoxSequenceQS* DaoxSequenceQS_New( DString *des, DString *seq, DString *qs );
DAO_DLL void DaoxSequenceQS_Delete( DaoxSequenceQS *self );
DAO_DLL void DaoxSequenceQS_Copy( DaoxSequenceQS *self, DaoxSequenceQS *other );

#endif
